{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b875e705-c290-470c-920d-ba6ac663ec96",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "num=10\n",
      "False\n",
      "True\n",
      "20\n",
      "10\n",
      "30\n",
      "11\n",
      "10\n",
      "9\n",
      "8\n",
      "7\n",
      "6\n",
      "5\n",
      "4\n",
      "3\n",
      "2\n"
     ]
    }
   ],
   "source": [
    "### 格式化字符串\n",
    "num=10\n",
    "print(f\"num={num}\")\n",
    "\n",
    "###字符串比较大小，比较的是字典序，a靠前(小)，z靠后(大)\n",
    "print(\"a\">\"b\")\n",
    "\n",
    "## and or not\n",
    "\n",
    "a=10\n",
    "b=20\n",
    "c=30\n",
    "## 支持多元比较\n",
    "print(a<b<c)\n",
    "###支持多元赋值\n",
    "a,b=b,a\n",
    "print(a)\n",
    "print(b)\n",
    "\n",
    "### 不支持 ++，--\n",
    "\n",
    "if a==10:\n",
    "    a=20\n",
    "    print(a)\n",
    "elif a==20:\n",
    "    a=30\n",
    "    print(a)\n",
    "else:\n",
    "    print(a)\n",
    "\n",
    "##空语句 pass\n",
    "#### for循环\n",
    "### range函数，生成可迭代对象 左闭右开,可以指定间隔(可以是负数)\n",
    "for i in range(11,1,-1):\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ddb5fe5a-cde6-49a5-a8ac-6578ef4758c7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "30\n",
      "函数内部 x=20\n",
      "函数外部 x=20\n"
     ]
    }
   ],
   "source": [
    "def sum(a,b):\n",
    "    return a+b\n",
    "\n",
    "print(sum(10,20))\n",
    "\n",
    "\n",
    "## 可以有多个返回值\n",
    "def getPoint():\n",
    "    x=10\n",
    "    y=20\n",
    "    return x,y\n",
    "\n",
    "x=10\n",
    "def test():\n",
    "    ## 如果要在函数内，修改全局变量的值\n",
    "    ##需要用global声明，否则只是在函数内部定义了一个新的变量\n",
    "    global x\n",
    "    x=20\n",
    "    print(f'函数内部 x={x}')\n",
    "\n",
    "test()\n",
    "print(f'函数外部 x={x}')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7047a5e-9a57-4678-8fb9-3bd97aaf1111",
   "metadata": {},
   "source": [
    "形参可以有默认值(不传参，则使用默认值)：\n",
    "有默认值的参数需要放到最后，"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "cb2ce91b-70ae-4b3f-be28-76b103079348",
   "metadata": {},
   "outputs": [],
   "source": [
    "def add(x,y=10):\n",
    "    return x+y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5817623b-5e3b-4494-a3c0-727869d1a599",
   "metadata": {},
   "source": [
    "除了按照顺序传参，也可按照关键字传参"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ef447950-438b-4029-811e-a163e133749f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def test(x,y):\n",
    "    return x+y\n",
    "\n",
    "\n",
    "test(x=10,y=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8854c44f-d7d0-458a-8663-6633a90d0869",
   "metadata": {},
   "source": [
    "### 列表、元组、字典\n",
    "列表相当于Java中的ArrayList，元组相对于列表来说，不能修改，只支持读操作；\n",
    "列表用[]表示，元组用()表示\n",
    "字典相当于Java中的HashMap，用{key：value}表示\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "6ecd3a48-65e1-498c-b5d6-3bbb52f9c9ec",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'list'> <class 'list'>\n"
     ]
    }
   ],
   "source": [
    "###创建列表\n",
    "a=[]\n",
    "b=list()\n",
    "print(type(a),type(b))\n",
    "### 列表中存放的元素可以是不同的类型\n",
    "a=[1,\"hello\",True]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "fa69e40a-ce45-4015-8ab5-597a88821bf9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "列表a的长度为 3\n"
     ]
    }
   ],
   "source": [
    "### 访问下标，Java中需要通过get()方法，python则比较简单\n",
    "print(a[2])\n",
    "###获取列表长度\n",
    "print(f'列表a的长度为 {len(a)}')"
   ]
  },
  {
   "attachments": {
    "0b148495-ef09-42db-95f7-a4fc6deefa67.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "59e76374-3542-47be-a8bc-47572f5ee573",
   "metadata": {},
   "source": [
    "也可以从右往左取下标，范围 -N ~ -1\n",
    "\n",
    "![image.png](attachment:0b148495-ef09-42db-95f7-a4fc6deefa67.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "edda19ee-1e99-4340-87a8-57011de716b9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, 3]\n",
      "[2, 4]\n",
      "[2, 3, 4, 5, 6]\n",
      "[1, 2, 3, 4, 5]\n",
      "[1, 2, 3, 4, 5, 6]\n",
      "[1, 3, 5]\n",
      "[6, 4, 2]\n"
     ]
    }
   ],
   "source": [
    "### 切片操作\n",
    "alist=[1,2,3,4,5,6]\n",
    "print(alist[1:3])\n",
    "print(alist[1:5:2])\n",
    "print(alist[1:])\n",
    "print(alist[:-1])\n",
    "print(alist[:])\n",
    "print(alist[::2])\n",
    "print(alist[::-2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f1ce0b6f-0de5-4b1b-8a66-50e0674b3a92",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 'hello', 'hello', 2, 3, 4, 5, 6, 7, 7]\n"
     ]
    }
   ],
   "source": [
    "### 新增元素\n",
    "### 向末尾插入元素\n",
    "alist.append(7)\n",
    "### 向任意位置插入元素\n",
    "alist.insert(1,'hello')\n",
    "print(alist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "e0d1972d-3ad1-4575-94da-b5f896f7990a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "3\n",
      "[1, 2, 3, 4, 5, 6, 7]\n",
      "[1, 2, 3, 4, 5, 6, 7]\n",
      "[5, 6, 7]\n"
     ]
    }
   ],
   "source": [
    "alist=[1,2,3,4,5,6,7,8,9]\n",
    "### 删除元素\n",
    "alist.pop() ## 删除末尾元素\n",
    "alist.pop(2) ## 按照下标删除元素\n",
    "alist.remove(6) ## 按照值删除元素\n",
    "### 查找元素\n",
    "print(3 in alist) # True of False\n",
    "print(alist.index(5)) ## 返回元素下标\n",
    "\n",
    "### 连接列表\n",
    "alist=[1,2,3,4]\n",
    "blist=[5,6,7]\n",
    "print(alist+blist) ## 使用 + 连接列表\n",
    "alist.extend(blist) ## 使用extend连接\n",
    "print(alist) \n",
    "print(blist)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "769f4ca1-f4af-47be-9176-b01601b8ed34",
   "metadata": {},
   "outputs": [],
   "source": [
    "### 元组\n",
    "atuple=()\n",
    "atuple=tuple()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "da97a0b5-f88f-471a-aff6-54197ca55470",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'id': 1, 'name': 'zhangsan'}\n"
     ]
    }
   ],
   "source": [
    "### 字典\n",
    "student = {\n",
    "    'id':1,\n",
    "    'name':'zhangsan'\n",
    "}\n",
    "print(student)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "234d4cd1-2966-4ec9-ad22-d81045d211b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "1\n",
      "{'id': 1, 'name': 'zhangsan', 'score': 90}\n",
      "{'id': 1, 'name': 'zhangsan'}\n"
     ]
    }
   ],
   "source": [
    "## 查找key\n",
    "print('id' in student)\n",
    "print(student['id'])\n",
    "## 新增/修改元素，存在为修改，不存在则新增\n",
    "student['score'] = 90\n",
    "print(student)\n",
    "## 删除\n",
    "student.pop('score')\n",
    "print(student)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "e8b65888-bee8-40fb-90cc-77413d13a511",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['id', 'name'])\n",
      "dict_values([1, 'zhangsan'])\n",
      "dict_items([('id', 1), ('name', 'zhangsan')])\n"
     ]
    }
   ],
   "source": [
    "## 查看所有key ，value\n",
    "print(student.keys())\n",
    "print(student.values())\n",
    "## 查看所有的key:value\n",
    "print(student.items())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "69d97ae1-2ab8-42e0-acf8-3405f8f00105",
   "metadata": {},
   "source": [
    "### 文件操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "8375e677-9e32-49cc-aaf0-adba6955e315",
   "metadata": {},
   "outputs": [],
   "source": [
    "### 打开文件 ,r 表示按照读方式打开. w 表示按照写方式打开. a表示追加写方式打开.\n",
    "### r+、w+、a+以读写方式打开文件，其中r文件必须存在\n",
    "f = open('./new.txt','w',encoding='utf8')\n",
    "\n",
    "for i in range(5):\n",
    "    f.write('hello world\\n')\n",
    "##注意读写指针的问题，写入内容后，指针位于文本最后，此时读不到任何内容\n",
    "##需要手动调整指针到文本开始的位置\n",
    "# f.seek(0)\n",
    "# result=f.read()\n",
    "# print(result)\n",
    "### 关闭文件\n",
    "f.close()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ff9e4a3",
   "metadata": {},
   "source": [
    "特性|\t​**w+（写读模式）​**\t|​**r+（读写模式）​**\t|​**a+（追加读写模式）​**\n",
    "--|--|--|--\n",
    "​文件是否存在要求|\t不存在则创建；存在则清空\t|必须存在（否则报错）\t|不存在则创建；存在则保留\n",
    "​初始指针位置\t|文件开头\t|文件开头|\t文件末尾\n",
    "​写入行为|\t从开头写入（覆盖原内容）|\t从当前位置写入（可覆盖内容）|\t始终追加到文件末尾\n",
    "​是否截断文件\t|✅ 立即清空文件\t|❌ 保留原内容\t|❌ 保留原内容\n",
    "​典型用途\t|完全重写文件或新建文件\t|修改文件中间部分内容|\t追加数据（如日志记录）\n",
    "​读取前是否需要 seek\t|是（写入后指针在末尾）\t|可选（指针可自由移动）\t|是（初始指针在末尾）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "754aab81",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['hello world\\n', 'hello world\\n', 'hello world\\n', 'hello world\\n', 'hello world\\n']\n",
      "hello world\n",
      "\n",
      "hello world\n",
      "\n",
      "hello world\n",
      "\n",
      "hello world\n",
      "\n",
      "hello world\n",
      "\n"
     ]
    }
   ],
   "source": [
    "### 上下文管理器,无需手动关闭文件\n",
    "with open('./new.txt','r',encoding='utf8') as f:\n",
    "    lines=f.readlines()\n",
    "    print(lines)\n",
    "    ## 由于上述方法导致 读指针 跑到了文本末尾，需要手动调回来\n",
    "    f.seek(0)\n",
    "    for line in f:\n",
    "        print(line)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "116b8177",
   "metadata": {},
   "source": [
    "## Python 面向对象"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "fa327310",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Alice, 2000\n"
     ]
    }
   ],
   "source": [
    "class Employee:\n",
    "    ##私有属性在类外部无法直接进行访问\n",
    "    ## 加__为私有方法，私有变量,\n",
    "    # __init__,__str__,__eq__等以双下划线开始且以双下划线结尾，不视为私有方法\n",
    "    name=''\n",
    "    salary=0\n",
    "    ## 构造方法,self代表类的实例\n",
    "    def __init__(self,name,salary):\n",
    "        self.name=name\n",
    "        self.salary=salary\n",
    "\n",
    "    ## 相当于Java的toString()方法\n",
    "    def __str__(self):\n",
    "        return self.name+\", \"+(str)(self.salary)\n",
    "        \n",
    "\n",
    "    \n",
    "alice=Employee(\"Alice\",2000)\n",
    "print(alice)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "bcfbfae8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "james说：我15岁了,我在读6年级\n"
     ]
    }
   ],
   "source": [
    "class People:\n",
    "    name=''\n",
    "    age=0\n",
    "    weight=0\n",
    "\n",
    "    def __init__(self,name,age,weight):\n",
    "        self.name=name\n",
    "        self.age=age\n",
    "        self.weight=weight\n",
    "\n",
    "    def speak(self):\n",
    "        print(f'{self.name}说：我{self.age}岁了')\n",
    "\n",
    "class Student(People):\n",
    "    grade = ''\n",
    "    ## 继承并重写父类的init方法\n",
    "    def __init__(self, name, age, weight,grade):\n",
    "        super().__init__(name, age, weight)\n",
    "        self.grade=grade\n",
    "\n",
    "    def speak(self):\n",
    "        print(f'{self.name}说：我{self.age}岁了,我在读{self.grade}年级')\n",
    "\n",
    "\n",
    "#另一个类，多继承之前的准备\n",
    "class Speaker():\n",
    "    topic = ''\n",
    "    name = ''\n",
    "    def __init__(self,n,t):\n",
    "        self.name = n\n",
    "        self.topic = t\n",
    "    def speak(self):\n",
    "        print(\"我叫 %s，我是一个演说家，我演讲的主题是 %s\"%(self.name,self.topic))\n",
    "\n",
    "\n",
    "# 类的继承(Python 支持多继承)\n",
    "class Sample(People,Speaker):\n",
    "    def __init__(self, name, age, weight,topic):\n",
    "        People.__init__(name, age, weight)\n",
    "        Speaker.__init__(name,topic)\n",
    "    \n",
    "\n",
    "s = Student(\"james\",15,60,6)\n",
    "s.speak()\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
